// pages/my/payment-code/index.js
const QR = require('../../../miniprogram_npm/wxbarcode/index.js');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    storeInfo: {
      name: '春熙路门店',
      id: ''
    },
    qrSize: 470,
    qrCodeGenerated: false,
    paymentUrl: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取门店信息
    this.getStoreInfo();
    // 生成二维码
    this.generateQRCode();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    // 页面渲染完成后再生成二维码
    setTimeout(() => {
      this.generateQRCode();
    }, 500);
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    
  },

  /**
   * 获取门店信息
   */
  getStoreInfo() {
    // 从本地存储或API获取门店信息
    const storeInfo = wx.getStorageSync('storeInfo') || {
      name: this.data.storeInfo.name || '春熙路门店',
      id: Date.now().toString() // 临时使用时间戳作为门店ID
    };
    
    this.setData({
      storeInfo: storeInfo
    });
  },

  /**
   * 生成二维码
   */
  generateQRCode() {
    const that = this;
    const storeId = this.data.storeInfo.id;
    
    // 构建付款页面URL，包含门店ID参数
    const paymentUrl = `/pages/scan-pay/index?storeId=${storeId}&storeName=${encodeURIComponent(this.data.storeInfo.name)}`;
    
    console.log('开始生成二维码:', paymentUrl);
    
    this.setData({
      paymentUrl: paymentUrl,
      qrCodeGenerated: false
    });

    // 使用canvas绘制二维码
    setTimeout(() => {
      try {
        console.log('尝试生成二维码，尺寸:', that.data.qrSize);
        QR.qrcode('qrCanvas', paymentUrl, that.data.qrSize, that.data.qrSize);
        console.log('二维码生成成功');
        that.setData({
          qrCodeGenerated: true
        });
      } catch (error) {
        console.error('二维码生成失败:', error);
        wx.showToast({
          title: '二维码生成失败',
          icon: 'none'
        });
      }
    }, 1000);
  },

  /**
   * 保存二维码
   */
  saveQRCode() {
    const that = this;
    
    wx.canvasToTempFilePath({
      canvasId: 'qrCanvas',
      success: function(res) {
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: function() {
            wx.showToast({
              title: '保存成功',
              icon: 'success'
            });
          },
          fail: function() {
            wx.showModal({
              title: '保存失败',
              content: '请检查是否授权访问相册',
              showCancel: false
            });
          }
        });
      },
      fail: function() {
        wx.showToast({
          title: '保存失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 刷新二维码
   */
  refreshQRCode() {
    this.generateQRCode();
    wx.showToast({
      title: '刷新成功',
      icon: 'success'
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.refreshQRCode();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: `${this.data.storeInfo.name} - 微信扫码付款`,
      path: this.data.paymentUrl,
      imageUrl: '/images/share-payment.png' // 可选：分享图片
    };
  }
})